Geavanceerde query parameters
@todo waarom in aparte map?
De dynamische API ondersteunt verschillende query parameters om je API-aanroepen te verfijnen en filteren. Deze geavanceerde functies maken het mogelijk om specifieke data op te halen zonder uitgebreide client-side filtering te implementeren.
Basis query parameters
Voor alle collecties kun je de volgende basis query parameters gebruiken:
Parameter | Beschrijving | Voorbeeld |
---|---|---|
limit |
Maximum aantal items om terug te geven | /api/products?limit=10 |
offset |
Aantal items om over te slaan (voor paginering) | /api/products?offset=20 |
sort |
Velden waarop gesorteerd moet worden | /api/products?sort=price |
fields |
Selecteert specifieke velden om terug te geven | /api/products?fields=name,price |
Filtering op veldwaarden
Je kunt filteren op specifieke veldwaarden door de veldnaam als query parameter te gebruiken:
/api/products?price=19.99
Dit retourneert alle producten met een prijs van exact 19,99.
Meerdere waarden (OR filtering)
Je kunt filteren op meerdere mogelijke waarden door deze met komma's te scheiden:
/api/products?categoryId=1,2,3
Dit retourneert producten in categorieen 1, 2 OF 3.
Vergelijkingsoperatoren
Voor numerieke en datum velden kun je vergelijkingsoperatoren gebruiken:
Operator | Beschrijving | Voorbeeld |
---|---|---|
[gt] |
Groter dan | /api/products?price[gt]=20 |
[gte] |
Groter dan of gelijk aan | /api/products?price[gte]=20 |
[lt] |
Kleiner dan | /api/products?price[lt]=50 |
[lte] |
Kleiner dan of gelijk aan | /api/products?price[lte]=50 |
[like] |
Overeenkomt met patroon (tekstvelden) | /api/products?name[like]=phone |
Voorbeelden van vergelijkingsoperatoren
Prijsbereik filteren
Om producten te vinden met een prijs tussen 20 en 50:
/api/products?price[gte]=20&price[lte]=50
Tekstzoekopdracht
Om producten te vinden met "phone" ergens in de naam (hoofdletterongevoelig):
/api/products?name[like]=phone
Datumfilters
Om bestellingen te vinden na een bepaalde datum:
/api/orders?orderDate[gt]=2024-01-01
Sortering
Je kunt je resultaten sorteren met de sort
parameter:
Oplopend sorteren
/api/products?sort=price
Aflopend sorteren (met voorafgaand minteken)
/api/products?sort=-price
Sorteren op meerdere velden
/api/products?sort=categoryId,-price
Dit sorteert eerst op categoryId (oplopend) en daarna op price (aflopend).
Paginering
Voor grote datasets kun je paginering gebruiken met de limit
en offset
parameters:
/api/products?limit=10&offset=0 // Eerste pagina
/api/products?limit=10&offset=10 // Tweede pagina
/api/products?limit=10&offset=20 // Derde pagina
Complexe zoekvoorbeelden
Producten in een prijsklasse en categorie
/api/products?categoryId=2&price[gte]=10&price[lte]=50&sort=-price
Dit zoekt naar alle producten in categorie 2, met een prijs tussen 10 en 50, gesorteerd op prijs (hoogste eerst).
Recente actieve bestellingen
/api/orders?status=active&orderDate[gt]=2024-01-01&sort=-orderDate
Dit zoekt naar actieve bestellingen geplaatst na 1 januari 2024, gesorteerd op datum (nieuwste eerst).